#ifndef  __TEST_PLAYLISTAUTOMATION_H
#define  __TEST_PLAYLISTAUTOMATION_H

#include <QObject>

#include "IF_MediaEngineInterface.h"

class PlaylistAutomation;
class MediaListModel;
class ActionListController;
class Fader;


class test_PlaylistAutomation : public QObject
{
   Q_OBJECT

public:
   test_PlaylistAutomation();

public slots:
   void init();
   void cleanup();

private:
   IF_MediaEngineInterface *m_mediaPlugin;
   PlaylistAutomation *m_playlistAutomation;
   MediaListModel *m_mediaModel;
   ActionListController *m_actionController;
   Fader *m_fader;

private Q_SLOTS:
   void initTestCase();
   void cleanupTestCase();
   void testInstance();

   /** set active media by index */
   void testActiveChangeRequest();

   /** set active media by string identifier */
   void testActiveChangedById();

   /** try to activate an invalid id */
   void testTryToActivateInvalidId();

   /** when active media changes, backend must be stopped */
   void testStopOnActiveChanged();

   /** on functionality shutdown, playback must be stopped */
   void testStopOnClose();

   /** on track finished, next one is activated and set to pause */
   void testActivateNextWhenPreviousIsOver();
};

#endif  // __TEST_PLAYLISTAUTOMATION_H

